package com.itheima.advice;

import org.aspectj.lang.JoinPoint;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

/**
 * 日志增强
 *      执行方法前：时间+类+包名+方法+参数
 *      执行方法后：返回值
 */
public class LogAdvice {
    public void before(JoinPoint joinPoint) {
        //当前的时间
        Date date = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
        String data = simpleDateFormat.format(date);
        //执行的类
        String className = joinPoint.getTarget().getClass().getName();
        //执行的方法
        String method = joinPoint.getSignature().getName();
        //参数
        Object[] args = joinPoint.getArgs();
        //显示到控制台上
        System.out.println(data + " " + className + "." + method + "(" + Arrays.toString(args) + ")");
    }
    public void afterReturning(JoinPoint joinPoint,Object result) {
        //当前的时间
        Date date = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
        String data = simpleDateFormat.format(date);
        //执行的类
        String className = joinPoint.getTarget().getClass().getName();
        //执行的方法
        String method = joinPoint.getSignature().getName();
        //返回值
        //显示到控制台上
        System.out.println(data + " " + className + "." + method + "============>" + (result == null ? "" : result));
    }
}
